package com.trhui.mallbook.domain.request.hf;

import com.trhui.mallbook.domain.common.BaseRequest;
import com.trhui.mallbook.domain.request.Goods;

import java.util.List;
/**
 * 汇付渠道退款请求对象
 * @author linqy
 */
public class HfRefundRequest extends BaseRequest {

    /**
     * 原支付请求订单号(必填) 字段长度最长：32 位
     */
    private String originalMerOrderId;

    /**
     * 原确认收货订单号字段长度最长：32 位
     */
    private String originalRcvMerOrderId;
    /**
     * 异步分账订单号 字段长度最长：32 位
     */
    private String asynMerOrderId;

    /**
     * 退款总金额(必填) 字段长度最长：12 位
     */
    private String refundAmount;

    /**
     * 分账方列表 非必填
     */
    private List<RefundUser> splitList;

    /**
     * 商品列表  非必填
     */
    private List<Goods> goodsDetail;

    /**
     * 渠道退款订单号 当退款不从MallBook发起时必传
     */
    private String refundChannelOrderId;
    /**
     * 账户类型
     * 接收退款的银行账户的账户类型。
     * 1：对公
     * 2：对私
     * 当原支付订单的支付类型为【银行转账支付】时，必传；需与支付时的付款账号一致；
     */
    private String bankAcctType;
    /**
     * 开户银行编码
     * 接收退款的开户银行编码。
     * 当原支付订单的支付类型为【银行转账支付】时，且账户类型为【对公】时必传；需与支付时的付款账号一致。
     * http://www.mallbook.cn/file/hf/list.xlsx
     */
    private String bankCode;
    /**
     * 省份编码
     * 当原支付订单的支付类型为【银行转账支付】时，且账户类型为【对公】时必传；需与支付时的付款账号一致
     */
    private String provCode;
    /**
     * 城市编码
     * 接收退款的开户银行所在行的城市编码。
     */
    private String areaCode;

    /**
     * 后台回调地址(必填) 字段长度：1 ~ 256 位
     */
    private String notifyUrl;

    /**
     * 自定义参数1  字段长度：100
     */
    private String parameter1;

    /**
     * 自定义参数2  字段长度：100
     */
    private String parameter2;

    public String getRefundChannelOrderId() {
        return refundChannelOrderId;
    }

    public void setRefundChannelOrderId(String refundChannelOrderId) {
        this.refundChannelOrderId = refundChannelOrderId;
    }

    public String getAsynMerOrderId() {
        return asynMerOrderId;
    }

    public void setAsynMerOrderId(String asynMerOrderId) {
        this.asynMerOrderId = asynMerOrderId;
    }

    public String getOriginalMerOrderId() {
        return originalMerOrderId;
    }

    public void setOriginalMerOrderId(String originalMerOrderId) {
        this.originalMerOrderId = originalMerOrderId;
    }

    public String getOriginalRcvMerOrderId() {
        return originalRcvMerOrderId;
    }

    public void setOriginalRcvMerOrderId(String originalRcvMerOrderId) {
        this.originalRcvMerOrderId = originalRcvMerOrderId;
    }

    public String getRefundAmount() {
        return refundAmount;
    }

    public void setRefundAmount(String refundAmount) {
        this.refundAmount = refundAmount;
    }

    public List<RefundUser> getSplitList() {
        return splitList;
    }

    public void setSplitList(List<RefundUser> splitList) {
        this.splitList = splitList;
    }

    public List<Goods> getPaymentOrderGoodDetail() {
        return goodsDetail;
    }

    public void setPaymentOrderGoodDetail(List<Goods> goodsDetail) {
        this.goodsDetail = goodsDetail;
    }

    public String getNotifyUrl() {
        return notifyUrl;
    }

    public void setNotifyUrl(String notifyUrl) {
        this.notifyUrl = notifyUrl;
    }

    public String getParameter1() {
        return parameter1;
    }

    public void setParameter1(String parameter1) {
        this.parameter1 = parameter1;
    }

    public String getParameter2() {
        return parameter2;
    }

    public void setParameter2(String parameter2) {
        this.parameter2 = parameter2;
    }

    public List<Goods> getGoodsDetail() {
        return goodsDetail;
    }

    public void setGoodsDetail(List<Goods> goodsDetail) {
        this.goodsDetail = goodsDetail;
    }

    public String getBankAcctType() {
        return bankAcctType;
    }

    public void setBankAcctType(String bankAcctType) {
        this.bankAcctType = bankAcctType;
    }

    public String getBankCode() {
        return bankCode;
    }

    public void setBankCode(String bankCode) {
        this.bankCode = bankCode;
    }

    public String getProvCode() {
        return provCode;
    }

    public void setProvCode(String provCode) {
        this.provCode = provCode;
    }

    public String getAreaCode() {
        return areaCode;
    }

    public void setAreaCode(String areaCode) {
        this.areaCode = areaCode;
    }
}
